<?php
defined('EXEC') or die();
$transacao = 'usuario_manter';

if(!$auth->isRead($transacao)){
	Util::info(Config::AUTH_MESSAGE);
	return true;
}

function optionsUniversidades(){
	$query = query('SELECT ci_universidade, nm_universidade FROM tb_universidade');
	echo '<option>--</option>';
	while($row = $query->fetch()){
		echo '<option value="'.$row['ci_universidade'].'">'.$row['nm_universidade'].'</option>';
	}
}

//Alteração ou inclusão de um registro
if(isset($_GET['db']) && isset($_GET['form'])){

	$cd_unidade_trabalho = $_POST['nm_unidade_trabalho_id'];
	$nm_usuario = addslashes(strtoupper($_POST['nm_usuario']));
	$nm_login = addslashes(strtoupper($_POST['nm_login']));
	$nm_cpf = addslashes($_POST['nm_cpf']);
	$nm_cpf = preg_replace("/[^0-9]/", "", $nm_cpf);
	$ds_email = addslashes($_POST['ds_email']);
	$dt_nascimento = $_POST['dt_nascimento'];
	$parts = explode('/', $dt_nascimento);
	$dt_nascimento = $parts[2].$parts[1].$parts[0];
	$fl_sexo = $_POST['fl_sexo'];
	$grupos = $_POST['cd_grupo_select'];

	//Gerando senha aleatória
	$senha = $auth->senhaAleatoria();

	//Validando para que não haja cpfs, emails ou logins duplicados
	$queryTestLogin = query("select ci_usuario from util.tb_usuario where nm_login = '$nm_login' and ci_usuario != ".$_GET['form']);
	$queryTestEmail = query("select ci_usuario from util.tb_usuario where ds_email = '$ds_email' and ci_usuario != ".$_GET['form']);
	$queryTestCPF = query("select ci_usuario from util.tb_usuario where nm_cpf = '$nm_cpf' and ci_usuario != ".$_GET['form']);
	if($queryTestLogin->rowCount() > 0){
		$rowEdit = $_POST;
		Util::alert('Já existe um usuário com este Login: '.$nm_login.' !');
	}
	elseif($queryTestEmail->rowCount() > 0){
		$rowEdit = $_POST;
		Util::alert('Já existe um usuário com este Email: '.$ds_email.' !');
	}
	elseif($queryTestCPF->rowCount() > 0){
		$rowEdit = $_POST;
		Util::alert('Já existe um usuário com este CPF: '.mask($nm_cpf, '###.###.###-##').' !');
	}
	else{
		$ci_usuario = $_GET['form'];
		if($_GET['form'] == 0){ //cadastro
			$rowId = query("select nextval('util.tb_usuario_ci_usuario_seq') as num")->fetch();
			$ci_usuario = $rowId['num'];
			$sql = "INSERT INTO util.tb_usuario(
				ci_usuario, nm_usuario, nm_login, nm_senha, ds_email, nm_cpf, dt_nascimento, fl_sexo, cd_unidade_trabalho, fl_atualizousenha)
			VALUES ($ci_usuario, '$nm_usuario', '$nm_login', md5('$senha'), '$ds_email', '$nm_cpf', '$dt_nascimento', '$fl_sexo', $cd_unidade_trabalho, 'N')";
		}
		elseif($_GET['form'] > 0){ //alteração
			$sql = "UPDATE util.tb_usuario
			   SET nm_usuario='$nm_usuario', nm_login='$nm_login', 
				   ds_email='$ds_email', nm_cpf='$nm_cpf', dt_nascimento='$dt_nascimento', fl_sexo='$fl_sexo', cd_unidade_trabalho=$cd_unidade_trabalho
			 WHERE ci_usuario=".$ci_usuario;		
		}

		if(execute($sql)){
			//Removendo todos os grupos do usuario deste módulo
			execute('delete from util.tb_usuariogrupos
						where ci_usuariogrupos in(
						select ci_usuariogrupos from util.tb_usuariogrupos tug
						inner join util.tb_grupo tg on(tug.cd_grupo = tg.ci_grupo)
						where tg.cd_modulo = '.Autenticacao::MODULO.' and tug.cd_usuario = '.$ci_usuario.')');
				
			//Adicionando os grupos do usuario deste módulo
			$sqlGrupos = '';
			for ($i=0;$i<count($grupos);$i++){
				$sqlGrupos .= 'insert into util.tb_usuariogrupos (cd_usuario, cd_grupo) values('.$ci_usuario.', '.$grupos[$i].'); ';
			}
			if($sqlGrupos != '')
			execute($sqlGrupos);

			if($_GET['form'] == 0){
				$auth->emailSenha($nm_login, $senha, $ds_email);
				Controller::setInfo('Um email foi enviado para este usuário', 'Salvo com sucesso!');
			}
			else{
				Controller::setInfo('Usuários', 'Salvo com sucesso!');
			}
			Controller::redirect(Util::setLink(array('form=null', 'db=null')));
		}
		else{
			Util::notice('Usuários', 'Ocorreu um erro!', 'error');
		}
	}
}

if(isset($_GET['form'])){ //Formulário para adição ou alteração de registro
	if($_GET['form'] == 0){
		if(!$auth->isCreate($transacao)){
			Util::info(Config::AUTH_MESSAGE);
			return true;
		}
		$queryGruposDisponiveis = query('select ci_grupo, nm_grupo from util.tb_grupo where cd_modulo = '.Autenticacao::MODULO.' order by fl_nivel_acesso desc');
		$queryGruposUtilizados = null;
	}
	else{
		if(!$auth->isUpdate($transacao)){
			Util::info(Config::AUTH_MESSAGE);
			return true;
		}
		if(@!$rowEdit){
			$rowEdit = query("select tu.*, to_char(dt_nascimento, 'dd/mm/yyyy') as dt_nascimento, tut.nm_unidade_trabalho, tu.cd_unidade_trabalho as nm_unidade_trabalho_id
			from util.tb_usuario tu 
			join util.tb_unidade_trabalho tut on(tu.cd_unidade_trabalho=tut.ci_unidade_trabalho)
			where tu.ci_usuario = ".$_GET['form'])->fetch();
		}
		$queryGruposDisponiveis = query('select ci_grupo, nm_grupo from util.tb_grupo where cd_modulo = '.Autenticacao::MODULO.' and ci_grupo not in(select cd_grupo from util.tb_usuariogrupos where cd_usuario = '.$_GET['form'].') order by fl_nivel_acesso desc');
		$queryGruposUtilizados = query('select tg.ci_grupo, tg.nm_grupo from util.tb_usuariogrupos tug join util.tb_grupo tg on(tug.cd_grupo = tg.ci_grupo) where tg.cd_modulo = '.Autenticacao::MODULO.' and tug.cd_usuario = '.$_GET['form']);
	}
}
else{ //Consulta no banco para listagem dos registros
	$where = '';
	if(@$_POST['search1']){
		$term = addslashes($_POST['search1']);
		$where .= "and nm_usuario ilike '%{$term}%' ";
	}
	if(@$_POST['search2']){
		$term = addslashes($_POST['search2']);
		$where .= "and nm_login ilike '%{$term}%' ";
	}
	if(@$_POST['search3']){
		$term = addslashes($_POST['search3']);
		$where .= "and ds_email ilike '%{$term}%' ";
	}
	if(@$_POST['search3']){
		$term = addslashes($_POST['search3']);
		$where .= "and ds_email ilike '%{$term}%' ";
	}
	if(@$_POST['search4']){
		$term = addslashes($_POST['search4']);
		$term = preg_replace("/[^0-9]/", "", $term);
		$where .= "and nm_cpf ilike '%{$term}%' ";
	}

	$sql = "select 	ci_usuario,
		nm_usuario,
		nm_login,
		nm_cpf,
		ds_email,
		to_char(dt_nascimento, 'dd/mm/yyyy') as dt_nascimento,
		fl_sexo
	from util.tb_usuario
	where 1=1 $where
	order by 2
	limit {$limitPagina} offset ".(($p - 1) * $limitPagina);
	$query = query($sql);
	$sqlNum = "select count(*) as num from util.tb_usuario where 1=1 $where";
	$rowNum = query($sqlNum)->fetch();
	$registros = $rowNum['num'];
	$paginacao = Util::pagination($registros, 4);
}

//Mascara CPF para Listar.
function mask($val, $mask){
	if(strlen($val) == 14)
	return $val;

	$maskared = '';
	$k = 0;
	for($i = 0; $i<=strlen($mask)-1; $i++){
		if($mask[$i] == '#'){
			if(isset($val[$k]))
			$maskared .= $val[$k++];
		}else{
			if(isset($mask[$i]))
			$maskared .= $mask[$i];
		}
	}
	return $maskared;
}

//Deixando pré-selecinada a opção masculino
if(@!$rowEdit['fl_sexo'])
$rowEdit['fl_sexo'] = 0;

?>
<div
	id="container">

	<!-- NOME DO MÓDULO E FORMULÁRIO DE PESQUISA -->
	<table class="actiontable">
		<tr>
			<td width="40"><img src="assets/usuarios.png" />
			</td>
			<td><span class="actiontitle">Alunos</span> <span class="actionview">
					- <?php echo (!isset($_GET['form']) ? 'Pesquisa' : (@$_GET['form'] > 0 ? 'Edição' : 'Cadastro')); ?>
			</span>
			</td>

			<td align="right"></td>

		</tr>
	</table>
	<?php if(!isset($_GET['form'])){ ?>
	<form class="form-horizontal" role="form">
		<div class="form-group">
			<label for="inputEmail3" class="col-sm-2 control-label">Universidade:</label>
			<div class="col-sm-4">
				<select class="form-control" id="inputUniversidades">
				<?=optionsUniversidades();?>
				</select>
			</div>
		</div>
		<div class="form-group">
			<label for="inputCursos" class="col-sm-2 control-label">Curso:</label>
			<div class="col-sm-6">
				<select class="form-control" id="inputCursos">
					<option>--</option>
				</select>
			</div>
		</div>
		<div class="form-group">
			<div class="col-sm-offset-2 col-sm-10">
				<div class="checkbox">
					<label><input type="checkbox"> Remember me</label>
				</div>
			</div>
		</div>
	</form>

	<?php } ?>

	<?php if(!isset($_GET['form'])){ ?>

	<!-- LISTAGEM DOS REGISTROS -->
	<form
		action="<?php echo Util::setLink(array('del='.$query->rowCount())) ?>"
		method="post" id="formSearch">
		<table class="table table-striped table-bordered table-hover">
			<thead>
				<tr class="ui-widget-header">
					<th>Cód.</th>
					<th>Usuário</th>
					<th>Login</th>
					<th>CPF</th>
					<th>Email</th>
					<th>Nascimento</th>
					<th>Sexo</th>
					<th></th>
				</tr>
			</thead>
			<tbody>
			<?php
			while($row = $query->fetch()){
				($row['fl_sexo']==0)? $sexo = 'M': $sexo = 'F';
				$arrayDatas = explode(" ", $row['dt_nascimento']);
				echo '<tr>
		            	<td>'.$row['ci_usuario'].'</td>
		                <td>'.$row['nm_usuario'].'</td>
		                <td>'.$row['nm_login'].'</td>
		                <td>'.mask($row['nm_cpf'], '###.###.###-##').'</td>
		                <td>'.$row['ds_email'].'</td>
		                <td>'.$arrayDatas[0].'</td>
		                <td>'.$sexo.'</td>
		                <td width="30" align="center">
		                	<div onclick="window.location=\''.Util::setLink(array('form='.$row['ci_usuario'])).'\';" class="btn btn-success btn-sm" title="Editar">
						    	<span class="glyphicon glyphicon-edit"></span>
						    </div>				    
		                </td>
		        	</tr>';					
			}
			?>
			</tbody>
		</table>
	</form>
	<?php echo $paginacao; ?>

	<?php } else{ ?>

	<!-- FORMULÁRIO DE CADASTRO -->
	<form action="<?php echo Util::setLink(array('db=1')) ?>" method="post"
		id="formInsertEdit" onsubmit="return test()">
		<div class="validateTips ui-corner-all"
			style="width: 720px; margin: 0 auto; text-align: center;">Preencha
			corretamente o formulário.</div>
		<table border="0" style="margin: 0 auto;">
			<tr>
				<td align="right">Unidade de Trabalho: *</td>
				<td><input type="text" id="nm_unidade_trabalho"
					name="nm_unidade_trabalho" class="text ui-corner-all"
					style="width: 480px;" maxlength="90"
					entitylabel="<?php echo @$rowEdit['nm_unidade_trabalho']; ?>"
					entityid="<?php echo @$rowEdit['nm_unidade_trabalho_id']; ?>" />
				</td>
			</tr>
			<tr>
				<td align="right">Nome Completo: *</td>
				<td><input type="text" id="nm_usuario" name="nm_usuario"
					value="<?php echo @$rowEdit['nm_usuario']; ?>"
					class="text ui-widget-content ui-corner-all" size="50"
					maxlength="90" /></td>
			</tr>
			<tr>
				<td align="right">Login: *</td>
				<td><input type="text" id="nm_login" name="nm_login"
					value="<?php echo @$rowEdit['nm_login']; ?>"
					class="text ui-widget-content ui-corner-all" size="20"
					maxlength="50" /></td>
			</tr>
			<tr>
				<td align="right">CPF: *</td>
				<td><input type="text" id="nm_cpf" name="nm_cpf" maxlength="14"
					value="<?php echo (@$rowEdit['nm_cpf'] ? mask($rowEdit['nm_cpf'], '###.###.###-##') : ''); ?>"
					class="text ui-widget-content ui-corner-all" size="20"
					onkeypress="mask(this, cpf)" /></td>
			</tr>
			<tr>
				<td align="right">Email: *</td>
				<td><input type="text" id="ds_email" name="ds_email"
					value="<?php echo strtolower(@$rowEdit['ds_email']); ?>"
					class="text ui-widget-content ui-corner-all" size="50"
					maxlength="100" /></td>
			</tr>
			<tr>
				<td align="right">Data de Nascimento: *</td>
				<td><input type="text" id="dt_nascimento" name="dt_nascimento"
					value="<?php echo @$rowEdit['dt_nascimento']; ?>"
					onkeypress="mask(this, data)"
					class="datepicker text ui-widget-content ui-corner-all"
					style="width: 115px" maxlength="10" />
				</td>
			</tr>
			<tr>
				<td align="right">Sexo: *</td>
				<td style="height: 25px;"><label><input type="radio" name="fl_sexo"
						value="0"
						<?php echo (@$rowEdit['fl_sexo'] == 0 ? 'checked="checked"' : ''); ?> />Masculino</label>&nbsp;
					<label><input type="radio" name="fl_sexo" value="1"
					<?php echo (@$rowEdit['fl_sexo'] == 1 ? 'checked="checked"' : ''); ?> />Feminino</label>
				</td>
			</tr>
			<tr>
				<td align="right" valign="top">Grupos: *</td>
				<td>
					<div id="cd_grupo">
						<select size="8" style="width: 230px; font-family: courier;"
							class="ui-widget-content ui-corner-all">
							<?php
							if(@$queryGruposDisponiveis){
								while($row = $queryGruposDisponiveis->fetch()){
									echo '<option value="'.$row['ci_grupo'].'">'.$row['nm_grupo'].'</option>';
								}
							}
							?>
						</select> <select id="cd_grupo_select" name="cd_grupo_select[]"
							size="8" style="width: 230px; font-family: courier;"
							class="ui-widget-content ui-corner-all">
							<?php
							if(@$queryGruposUtilizados){
								while($row = $queryGruposUtilizados->fetch()){
									echo '<option value="'.$row['ci_grupo'].'">'.$row['nm_grupo'].'</option>';
								}
							}
							?>
						</select>
					</div>
				</td>
			</tr>
			<tr>
				<td></td>
				<td><button id="btInsertEdit" type="submit">Salvar</button></td>
			</tr>
		</table>
	</form>
	<?php } ?>

</div>

<script type="text/javascript">
$(function(){
    $("#inputUniversidades").change(function(){
    	$.ajax({
			url: "modules/relatorios/getCursos.php",
			type:"GET",
			data: {universidade:$("#inputUniversidades").val()},
			context: document.body
		}).done(function( content ) {
			//$( "#inputCursos" ).html( content );
			alert(content);
		});
    });
});
    
</script>
